package com.glsc.ngateway.platform.dto;


import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

import javax.persistence.Column;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.List;

/**
 * @author guoj
 * @description: 应用详情
 * @date 2024/8/9 10:06
 */
@Data
@Builder
@AllArgsConstructor
@ToString
@NoArgsConstructor
@ApiModel("新增或编辑应用详情主表信息dto")
public class IpInfoDto implements Serializable {
    private static final long serialVersionUID = -7934123424178694089L;

    @ApiModelProperty(value = "IpInfo表主键 新增时为空")
    private String id;

    //服务器类型的口径是
    // 若IP从服务器资产的IP1 获取 则为物理机 ，
    // 从虚拟机资产信息获取，则为虚拟机
    // 从 云平台设备获取 则为云平台
    @ApiModelProperty(value = "ip服务器类型-字典项")
    @NotBlank(message = "服务器类型不能为空")
    private String sourceType;

    //从三个菜单初始化
    @ApiModelProperty(value = "ip")
    @NotBlank(message = "IP不能为空")
    private String ip;

    //服务器资源中 有冷备 在线
    // 云平台虚拟机为null
    @ApiModelProperty(value = "ip状态 取状态字典项")
    private String ipStatus;
    @ApiModelProperty(value = "责任人oa账户")
    @NotBlank(message = "责任人oa账户不能为空")
    private String systemUserId;
    @ApiModelProperty(value = "责任人姓名")
    private String systemUserName;
    @ApiModelProperty(value = "应用详情列表")
    @Valid
    private List<IpDetailInfoDto> ipDetailInfoList;

    @ApiModelProperty(value = "唯一标识")
    private String uniqueKey;
    @ApiModelProperty(value = "虚拟机名称，只有虚拟机管理有该字段")
    private String virtualName;
}
